home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / passw11.zip / SETPASSW.PAS < prev   
Pascal/Delphi Source File  |  1992-11-02  |  1KB  |  69 lines

  1. {
  2.    Patchprogramm um das Passwort in PASSWORD.SYS neu einzustellen
  3.  
  4.    Autor: Christoph Christ
  5.    Datum: 1.11.1992
  6.    Version: 1.0A für NECV20, NecV30, 80286 und höhere
  7.  
  8. MAPFILE von PASSWORD.SYS:
  9.  
  10.  Start  Stop   Length Name               Class
  11.  
  12.  00000H 001F3H 001F4H CODE
  13.  
  14.   Address         Publics by Name
  15.  
  16.  0000:003C       PASSWORD
  17.  
  18.   Address         Publics by Value
  19.  
  20.  0000:003C       PASSWORD
  21.  
  22. Program entry point at 0000:0000
  23. Warning: No stack
  24.  
  25.  
  26.  
  27. }
  28.  
  29.  
  30. program SetPassword;
  31. uses crt;
  32.  
  33. var s:String;
  34.     pw: String;
  35.     i:byte;
  36.     f: File;
  37.     l: Byte;
  38.     c: Char;
  39. begin
  40.   Writeln('Password Protection (c) Christoph Christ 1.11.1992');
  41.   Write(^J^M'Input the active password: ');
  42.   Readln(s);
  43.   assign(f, 'password.sys');
  44.   reset(f, 1);
  45.   Seek(f, $3C);
  46.   Blockread(F, PW, 40);
  47.   for I := 1 to length(PW) do byte(PW[i])  := Byte(PW[I]) XOR I;
  48.   if S <> PW then
  49.   begin
  50.     Writeln('Password incorrect - program aborted');
  51.   end
  52.   else
  53.   begin
  54.     Write('Password correct. '^M^J'Input the new password: ');
  55.     Readln(S);
  56.     Write('Password really OK (Yes, No)? ');
  57.     Repeat C := Upcase(Readkey); until C in ['Y','N','J'];
  58.     Writeln(C);
  59.     if (C='N') or (C='n') then Exit;
  60.     for I := 1 to length(S) do byte(S[i])  := Byte(S[I]) XOR I;
  61.     Seek(F, $3C);
  62.     BlockWrite(f, S[0], 1);
  63.     Seek(F, $3D);
  64.     BlockWrite(f, S[1], Length(S));
  65.     Writeln;
  66.     Writeln('New Password saved.');
  67.   end;
  68.   close(f);
  69. end.